package ar.com.ctrln.control.ventas.servicio;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;

import ar.com.ctrln.persistence.model.cliente.Cliente;
import ar.com.ctrln.persistence.model.contratacion.ContratacionServicio;
import ar.com.ctrln.persistence.model.contratacion.DetalleContratacionInternet;
import ar.com.ctrln.persistence.model.contratacion.DetalleContratacionTelefonia;
import ar.com.ctrln.persistence.model.servicios.Servicio;
import ar.com.ctrln.persistence.model.servicios.TipoServicio;
import ar.com.ctrln.persistence.model.servicios.telefonia.Operador;
import ar.com.ctrln.services.cliente.GestorCliente;
import ar.com.ctrln.services.contratacion.GestorContratacionServicio;
import ar.com.ctrln.services.contratacion.GestorDetalleContratacion;
import ar.com.ctrln.services.contratacion.GestorDetalleContratacionInternet;
import ar.com.ctrln.services.contratacion.GestorDetalleContratacionTelefonia;
import ar.com.ctrln.services.organizacion.GestorTipoOrganizacion;
import ar.com.ctrln.services.servicio.GestorOperador;
import ar.com.ctrln.services.servicio.GestorServicio;

@Controller("registrarContratacion")
public class RegistrarContratacionServicio {

	@Autowired
	private GestorContratacionServicio gestorContratacionServicio;

	@Autowired
	private GestorDetalleContratacionInternet gestorDetalleInternet;

	@Autowired
	private GestorDetalleContratacionTelefonia gestorDetalleTelefonia;

	@Autowired
	private GestorDetalleContratacion gestorContratacion;

	@Autowired
	private GestorDetalleContratacion gestorDetalleContratacion;

	@Autowired
	private GestorServicio gestorServicio;

	@Autowired
	private GestorCliente gestorCliente;

	@Autowired
	private GestorTipoOrganizacion gestorTipoCliente;

	@Autowired
	private GestorOperador gestorOperador;

	private ContratacionServicio contratacion;

	public ContratacionServicio getContratacion() {
		if (contratacion == null)
			contratacion = gestorContratacionServicio.nuevaContratacion();
		return contratacion;
	}

	public boolean guardarNuevaContratacion(ContratacionServicio contratacion) {
		try {
			gestorContratacionServicio.guardar(contratacion);
			return true;
		} catch (Exception e) {
			e.printStackTrace();
			return false;
		}

	}

	public void nuevaContratacion(ContratacionServicio contratacion) {
		gestorContratacionServicio.guardar(contratacion);
	}

	public List<Cliente> listarClientes() {
		return gestorCliente.listarClientes();
	}

	public List<DetalleContratacionInternet> listarContratacionInternet() {
		return gestorDetalleInternet.listarDetalle();
	}

	public List<DetalleContratacionTelefonia> listarContratacionTelefonia() {
		return gestorDetalleTelefonia.listarDetalle();
	}

	public List<TipoServicio> listaTipoServicio() {
		return gestorServicio.listarTipoServicio();
	}

	public List<Servicio> listaServicios() {
		return gestorServicio.listarServicios();
	}

	public List<Servicio> listaServicios(long idTipoServicio) {
		return gestorServicio.listarServicios(idTipoServicio);
	}

	public List<Operador> listaOperadores() {
		return gestorOperador.listarOperadores();
	}

	public void guardarDetalleTelefonia(DetalleContratacionTelefonia detalle) {
		gestorDetalleTelefonia.guardar(detalle);
	}

	public void guardarDetalleInternet(DetalleContratacionInternet detalle) {
		gestorDetalleInternet.guardar(detalle);
	}
}
